﻿

namespace LPP.Entity.Media
{
    public abstract class Media
    {
        public int Id { get; set; }
        public string FileName { get; set; }
        public string FilePath { get; set; }
        public string ContentType { get; set; }
        public DateTime UploadDate { get; set; }
        public int Likes { get; set; }
        public List<Share> Shares { get; set; }
        public List<Favorite> Favorites { get; set; }
    }

    public class Image : Media
    {
        public int Width { get; set; }
        public int Height { get; set; }
    }

    public class Video : Media
    {
        public TimeSpan Duration { get; set; }
    }

    public class Share
    {
        public int Id { get; set; }
        public int MediaId { get; set; }
        public Media Media { get; set; }
        public string Platform { get; set; }
    }

    public class Favorite
    {
        public int Id { get; set; }
        public int MediaId { get; set; }
        public Media Media { get; set; }
        public string UserId { get; set; }
    }
}
